Overview


Most programs used on today's Macintosh computers are monolithic applications. The good news is that developers know how to create applications. The bad news is that large applications are difficult to design, code, test, and maintain. Furthermore, end users are having problems because their applications come with an inflexible set of features. They cannot add functionality or replace certain functions with better choices.

Now that component technologies like OpenDoc and SOM are available, developers have choices. You can still build monolithic applications if you want to. But there are many advantages to creating customer solutions from a suite of components. Components allow you to decompose a large job into a set of small programs, each of which can be designed, coded, and tested separately. Components can also benefit the user, allowing the user to plug in new functionality - often without the developer being involved. The user can sometimes also replace functionality be removing one component and adding in a different one.

This discussion is organized into seven major sections, as follows:
Hands-On tells you where and how to get sample OpenDoc parts and other components, so that you can try things on your own Macintosh - without having to get out your favorite C++ compiler and write any code.

Technologies provides a technical overview of SOM, OpenDoc, containers, linking, and other component technologies. Many of the advanced component technologies involve support for part-to-part communication, which allow separate OpenDoc parts to work together.

Reusable Components lists various sources for components that other developers have already written. Some of these are available free from Apple, while others can be purchased or licensed from third-party developers. An important rule for component software development is to avoid work at all costs :-) , so you should only create new components if you have no other choice. Why? Simply because the way to save large sums of money on design, coding, testing, and years of maintenance is to let others people do that work. You should spend your time writing code that encapsulates your expertise in some problem domain. If you need components that are not in your area of specialization, try to find existing ones rather than getting sidetracked creating new ones.

Development Tools describes many of the common tools used for component software development on the Macintosh. This section also provides some guidance to help you choose which development tools, libraries, and frameworks are best suited for each type of job.

Case Studies provides an number of examples of how certain types of monolithic applications could be redesigned as a set of components. Some of these case studies are based on real components that you can download and try out on your own. In some cases, the source code to the components is also available.

Resources lists training, books, and online sources for more detailed information.

Glossary defines terms used throughout this course. You will not need to read this separately, but you may want to follow links to definitions are you read the other sections.


OverviewHands-OnTechnologies
ComponentsToolsCase Studies


Home
©1996 Apple Computer, Inc.

Last modified by DAW on 11-July-96